package cm.tl.pms.mapstruct;

import cm.tl.pms.entity.Project;
import cm.tl.pms.entity.vo.req.ProjectAddReq;
import cm.tl.pms.entity.vo.resp.ProjectResp;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper(componentModel = "spring")
public interface ProjectMapStruct {
    ProjectMapStruct INSTANCE = Mappers.getMapper(ProjectMapStruct.class);

    Project toProject(ProjectAddReq req);

    ProjectResp toProjectResp(Project req);

    List<ProjectResp> toProjectResp(List<Project> req);

//    fixme example
//    EventTypeDo convert(BizEventDo resp);
//
//    default EventTypeDo config(BizEventDo resp) {
//        resp.setId(null);
//        EventTypeDo convert = convert(resp);
//        convert.setDelFlag(DelFlagEnum.NORMAL.getCode());
//        convert.setStatus(ConsumerStatusEnum.RESUME.getCode());
//        convert.setCreator("sys");
//        convert.setUpdater("sys");
//        convert.setEventName("sys");
//        convert.setRemark("sys");
//        convert.setCreateTime(new Date());
//        convert.setUpdateTime(new Date());
//        return convert;
//    }
//
//    @Mappings({@Mapping(source = "delFlag", target = "delFlag", qualifiedByName = "toDelFlag")})
//    EventTypeResp toEventTypeResp(EventTypeDo eventTypeDo);
//
//    @Named("toDelFlag")
//    default String toDelFlag(Integer deFlag) {
//        return DelFlagEnum.getStatusEnum(deFlag).getName();
//    }

}
